﻿using System;
using System.Net.Sockets;

namespace Jiubang.Communication.Server.RequestRouter {
    /// <summary>
    /// 可以向指定的Socket发送消息
    /// </summary>
    public interface IMessageSender {
        /// <summary>
        ///   发送消息头及正文
        /// </summary>
        /// <param name = "socket">发送目标</param>
        /// <param name = "buffer">
        ///   发送的消息正文缓冲区。
        ///   如Offset所在位置足够消息头填充则直接向缓冲区添加消息头声明。
        ///   否则将从bufferManager申请足够长度的byte数组用于并复制缓冲区。
        /// </param>
        /// <returns>是否异步发送</returns>
        bool SendAsync(Socket socket, ArraySegment<byte> buffer);
    }
}
